An information retrieval process begins when a user provides a query against which objects of information in a database are matched using a search algorithm. To increase the processing speed of the search algorithm, the algorithm can operate on a pre-computed index of the information rather than on the information itself. The search algorithm may return one or more objects matching the query, possibly having varying degrees of relevancy. With respect to highly dimensional data, such as image data, traditional data structures and search mechanisms do not provide sufficient scalability in terms of both the size and dimensionality of this data. Thus, there is a need for scalable indexing and search methods for fast and effective retrieval of highly dimensional data.